﻿package jp.underthetree.air.deskclock 
{
	/**
	 * ...
	 * @author 
	 */
	public class TimeMan
	{
		private var d:Date;
		
		public function TimeMan(d:Date = null)
		{
			this.d = d != null ? d : new Date();
		}
				
		/**
		 * 現在時刻の"時"を以下数式に基づき0以上24未満の実数で返します。
		 * 戻り値 = 時 + 分 / 60 + 秒 / 3600
		 * @return 現在時刻の時
		 */
		public function currentHour():Number {
			return d.getHours() + this.currentMinutes() / 60;
		}
		
		/**
		 * 現在時刻の"分"を以下数式に基づき0以上60未満の実数で返します。
		 * 戻り値 = 分 + 秒 / 60
		 * @return 現在時刻の分
		 */
		public function currentMinutes():Number {
			return d.getMinutes() + this.currentSeconds() / 60;
		}
		
		/**
		 * 現在時刻の"秒"をミリ秒精度で返します。
		 * @return 現在時刻の秒
		 */
		public function currentSeconds():Number {
			return d.getSeconds() + d.getMilliseconds() / 1000;
		}
		
		/**
		 * 現在時刻を表す日付オブジェクトへの参照を返します。
		 * @return
		 */
		public function getDateObject():Date {
			return d;
		}
	}
}